<?php

require_once 'models/DAL/CategoriaDAO.php';

class Application_Model_Categoria {

    const CATEGORIA_EXCLUIDA = 1;
    const CATEGORIA_N_EXCLUIDA = 0;

    private $dbTable = null;

    public function __construct() {
        $this->dbTable = new Application_Model_DbTable_Categoria();
    }

    public function add(Application_Model_DAO_Categoria $categoria) {
        $db = $this->dbTable;

        $id = $categoria->getIdCategoria();
        if (!empty($id)) {
            $return = $db->update(
                    array(
                'categoria' => $categoria->getCategoria()
                    //,'imagePath' => $categoria->getImagePath()
                    ), 'idCategoria =' . (int) $categoria->getIdCategoria());
        } else if (empty($id))
            $return = $db->insert(
                    array(
                        'categoria' => $categoria->getCategoria(),
                        'imagePath' => $categoria->getImagePath()
                    )
            );

        return $return;
    }

    public function getAllCategorias() {
        $db = $this->dbTable;
        return $db->getAllCategorias();
    }

    public function deletar(Application_Model_DAO_Categoria $categoria) {
        $db = $this->dbTable;
        $return = $db->delete('idCategoria = ' . (int) $categoria->getIdCategoria());

        if ($return) {
            return self::CATEGORIA_EXCLUIDA;
        }return self::CATEGORIA_N_EXCLUIDA;
    }

    public function getCategoriaById(Application_Model_DAO_Categoria $categoria) {
        $db = $this->dbTable;
        $select = $db->select('*')
                ->where('idCategoria = ?', (int) $categoria->getIdCategoria());
        $row = $db->fetchRow($select)->toArray();


        $categoria->setCategoria($row['categoria']);
        $categoria->setImagePath($row['imagePath']);
        return $categoria;
    }

}

